The following report looks at the performance of 30 students over 4 quizzes. The grades data is simulated using random numbers for normal distributions.
library(plotly)
set.seed(123)
data <- data.frame(
Quiz1 = round(rnorm(30, 60, 5)),
Quiz2 = round(rnorm(30, 70, 2)),
Quiz3 = round(rnorm(30, 80, 5)),
Quiz4 = round(rnorm(30, 75, 10))
)
data$Average_Quizzes <- round(
(data$Quiz1 + data$Quiz2 + data$Quiz3 + data$Quiz4) / 4.0)
grades <- data$Average_Quizzes
x <- list(
title = "Student"
)
y <- list(
title = "Score"
)
n = length(grades)
p <- plot_ly(x = 1:n, y = grades, name = 'Quizzes', type = 'bar') %>%
layout(title="Average Quiz Scores", xaxis = x, yaxis = y)
poptions(digits=2)
sum_data <- data.frame(
AvgQuiz = as.vector(summary(data$Average_Quizzes)),
Quiz1 = as.vector(summary(data$Quiz1)),
Quiz2 = as.vector(summary(data$Quiz2)),
Quiz3 = as.vector(summary(data$Quiz3)),
Quiz4 = as.vector(summary(data$Quiz4))
)
rownames(sum_data) <- c("Min", "Q1", "Q2", "Mean", "Q3", "Max")
sum_data## AvgQuiz Quiz1 Quiz2 Quiz3 Quiz4
## Min 63 50 67 68 58
## Q1 70 57 69 78 68
## Q2 72 60 70 80 73
## Mean 71 60 70 80 74
## Q3 73 62 72 82 80
## Max 78 69 74 90 97
plot_ly(data, y = ~Average_Quizzes, type="box", name = 'Avg_Quiz') %>%
add_trace(p, y = ~Quiz1, name = 'Quiz1') %>%
add_trace(p, y = ~Quiz2, name = 'Quiz2') %>%
add_trace(p, y = ~Quiz3, name = 'Quiz3') %>%
add_trace(p, y = ~Quiz4, name = 'Quiz4') %>%
layout(yaxis = y)Add conclusions about the analysis…